이스트캠프 Java 퀴즈 5

📘 오늘 학습한 내용

1️⃣ Java


📝 퀴즈

🧩 퀴즈 1

Q. 예외와 에러는 같은 개념일까요?

📝 나의 답변:

예외 : 코드 문법적으론 영향이 없어 보이나 실제 동작 시 생길 수 있는 문제 
개발자가 예상하여 처리 가능

에러 : 프로그램 동작 시 발생하면 종료되며 개발자가 미리 예측하여 처리하기 어려운 문제

✅ 피드백:

예외 : 개발자가 의도한 상황
에러 : 시스템적인 상황. 복구 불가능한 시스템적 문제

🧩 퀴즈 2

Q. 예외를 처리할 수 있는 방법은 무엇이 있는지 체크드/언체크드 예외 각각에 대해서 설명해보세요.

📝 나의 답변:

예외 처리 시 try-catch문을 사용하여 try문에서 발생한 예외를 catch문에서 처리하고, throw를 사용하여 상위 클래스/메서드로 예외를 던져서 상위에서 처리할 수 있습니다. 
체크 예외 : 컴파일 과정에서 검사하는 예외 
비체크 예외 : 개발자가 직접 처리하는 예외

✅ 피드백:

체크 예외 : 컴파일 과정에서 검사하는 예외 
IOException, SQLException

비체크 예외 : 개발자가 직접 처리하는 예외
NullPointerException, ArithmeticException

try-catch와 throw를 사용하여 예외 처리

🧩 퀴즈 3

Q. 접근제어자에 대한 표를 채워보세요
java_20250529_q1.png

📝 나의 답변:

제어자 내부 패키지 외부 패키지 클래스 상속 클래스
public O O 모든 클래스 O
protected O X 같은 패키지 내 O
default O X 같은 패키지 내 X
private X X 현재 클래스 X

✅ 피드백:

접근제어자 같은 클래스 같은 패키지 하위 클래스 전체 접근
public
protected
default
private

🧩 퀴즈 4

Q. 정규표현식으로 회원가입 시 입력된 핸드폰 번호가 형식에 어긋나지 않는지 검사 하기 위한 코드를 작성해보세요. (010으로 시작하고 -없이 10~11자리 숫자)

📝 나의 답변:

import java.util.regex.*;

public class RegexTest {  
    public static void main(String[] args) {  
        String[] phoneNumbers = {"01012344567", "0103129472", "01062040982"};  
        Pattern pattern = Pattern.compile("010\\d{7,8}");  
        for(String str : phoneNumbers) {  
            System.out.println(str + " -> " + (pattern.matcher(str).matches() ? "O" : "X"));  
        }  
    }  
}

java_20250529_q4_a.png


🧩 퀴즈 5

Q. Comparator를 사용하여 조회수가 높은 순으로 영상을 정렬하는 코드를 간략히 작성해보세요. 영상 조회수는 getViews로 가져온다고 가정합니다.

📝 나의 답변:

public class Video implements Comparable<Video> {
    private String title;
    private int views;

    public Video(String title, int views) {
        this.title = title;
        this.views = views;
    }

    @Override
    public int compareTo(Video v1) {
        return Integer.compare(this.views, v1.views);
    }

    @Override
    public String toString() {
        return title + " : " + views +"회";
    }

    public int getViews() {
        return views;
    }
}
import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<Video> list = Arrays.asList(
            new Video("a", 200),
            new Video("b", 94732),
            new Video("c", 1432),
            new Video("d", 203),
            new Video("e", 87332)
        );
        System.out.println(list);

        list.sort(Comparator.comparing((Video v)-> -v.getViews()));
        System.out.println(list);
    }
}

java_20250529_q5_a.png